iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Software Development

新手村的練功筆記系列 第 24

Day 24 SQL - 查詢(Query)語法複習

  • 分享至 

  • xImage
  •  

今日課程範圍
SQL Lesson 12: Order of execution of a Query
https://sqlbolt.com/lesson/select_queries_order_of_execution

SQL的查詢(Query)語法也介紹了不少
今天我們將來做個查詢語法的總複習吧

SQL語句 (SQL clauses)

增加限定條件 WHERE + <condition>
資料不重複 DISTINCT
資料排序 ORDER BY ASC/DSEC
限制資料筆數 LIMIT 5
限制資料筆數和偏移量 LIMIT 5 OFFSET 5
查詢為/不為空值(NULL) IS NULL & IS NOT NULL
群組化 GROUP BY & HAVING

JOIN方法

  • INNER JOIN
  • OUTER JOIN
    • LEFT (OUTER) JOIN
    • RIGHT (OUTER) JOIN
    • FULL (OUTER) JOIN

小提示:所有的字串(string)都必須要用引號括起來,目的是為了讓程式能夠區分SQL語法學與一般的文字

好用的組合技 (Operator)

Function Description
ABS( numeric_exp ) Returns the absolute value of numeric_exp.
DEGREES( numeric_exp ) Returns the number of degrees converted from numeric_exp radians.
PI( ) Returns the constant value of pi as a floating-point value.
POWER( numeric_exp, integer_exp) Returns the value of numeric_exp to the power of integer_exp.
ROUND( numeric_exp, integer_exp) Returns numeric_exp rounded to integer_exp places right of the decimal point. If integer_exp is negative, numeric_exp is rounded to |integer_exp| places to the left of the decimal point.

常見的聚合函數

開始今天的練習吧

第一題

我們要找每個導演各別拍了幾部電影
相信這題對現在的你已經相當簡單了

我們只要對導演進行GROUP BY
並用COUNT() 計算電影的數目即可

SELECT Director,COUNT(Title) AS "Number of movies" 
FROM movies
GROUP BY Director

第二題

我們要找出各導演執導過的電影票房總和 (含國內外)

我們知道舉凡有分組味道的查詢語句應該都離不開 GROUP BY的用法
因此 我們一樣先用GROUP BY對導演分組

接著你會發現我們需要的票房資料並沒有紀錄在 “Movies” 這張表上
票房的資料是紀錄在 “Boxoffice” 表中

還記得我們前面要怎麼關聯表格進行查詢嗎?
沒錯 我們需要用到 JOIN 語法

接著我們觀察一下他們有共同的電影id進行關聯
所以可以使用

LEFT JOIN Boxoffice ON id = Movie_id

我們需要計算國內外的票房總和
因此需要將兩者相加

Domestic_sales + International_sales

因為是各別導演的票房總和
最後需要用 SUM() 來求出總和

SUM(Domestic_sales + International_sales)

所以再整理一下語法 就如下方所示囉

SELECT Director, SUM(Domestic_sales + International_sales) AS "total sales" FROM movies
LEFT JOIN Boxoffice ON id = Movie_id
GROUP BY Director

今天就先到這邊
我們明天將學習新的部分


上一篇
Day 23 SQL - GROUP BY & HAVING
下一篇
Day 25 SQL - INSERT
系列文
新手村的練功筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言